package dicom.jpg.dto;

import lombok.Data;

/**
 * <p>
 *
 * <p>版权所有:Copyright (c) 2021
 *
 * @author 周昭名
 * @version V1.0
 * @since 2022/8/11 17:13
 */
@Data
public class Dcm2jpgParam {
    /**
     * --frame <number>  帧数 默认值1
     */
    private Integer frame = 1;
    /**
     * compression quality (0.0-1.0) of output image
     * 输出图片的压缩质量 1.0最高
     */
    private Float quality = 0.9f;
    /**
     * --window <number>     use <number>. Window Center/Width value, if the image provides several Window Center/Width values; use 1. by default.
     */
    private Integer windowIndex = 1;
    /**
     * ----voilut <number> explicit(明确的) VOI LUT, if the image provides several explicit VOI LUT; use 1. by default.
     */
    private Integer voiLUTIndex = 1;
    /**
     * --uselut use explicit VOI LUT in image, even if the image also specifies Window Center/Width;
     * prefer applying Window Center/Width over explicit VOI LUT by default
     * 是否优先预设窗,如果在图像中使用显式VOI LUT的情况下，图像也指定了窗口中心/宽度; 默认情况下，优先应用窗口中心/宽度，而不是显式VOI LUT
     */
    private Boolean preferWindow = true;
    /**
     * --windowCenter dcm图窗位 Window Center of linear VOI LUT function to apply
     */
    private Float windowCenter;
    /**
     * --windowWidth dcm图窗宽 默认linear VOI LUT function
     */
    private Float windowWidth;
    /**
     * --noauto
     * disable auto-windowing for images w/o VOI attributes
     */
    private Boolean autoWindowing = true;
    /**
     * --noshape
     * ignore present (2050,0020) Presentation LUT Shape; prioritize value of (0028,0004) Photometric Interpretation to determine if
     * minimum sample value is intended to be displayed as white (=MONCHROME1) or as black (=MONCHROME2)
     * 忽略(2050,0020)的LUT形状值;以节点(0028,0004)Photometric Interpretation的优先顺序，确定最小样本值是否显示为 白色(=MONCHROME1)或黑色(=MONCHROME2)
     * Photometric Interpretation Attribute (0028, 0004) 光度解释属性
     * MONOCHROME1 最小值显示为白色，只有在 Samples per Pixel (0028,0002) 值为 1 时有效
     * MONOCHROME2 最大值显示为白色，只有在 Samples per Pixel (0028,0002) 值为 1 时有效
     */
    private Boolean ignorePresentationLUTShape;
    /**
     * --overlays <mask>         render overlays specified by bits 1-16 of <mask> in hex; FFFF by default.
     */
    private Integer overlayActivationMask = 0xffff;
    /**
     * --ovlygray <value>        grayscale value of rendered overlays in hex;FFFF (= white) by default.
     */
    private Integer overlayGrayscaleValue = 0xffff;
    /**
     * --ovlyrgb <value>         color of rendered overlays as RGB color code; #ffffff (= white) by default.
     */
    private Integer overlayRGBValue = 0xffffff;
    /**
     * --iccprofile <profile>    specifies the color characteristics of, and inclusion of an ICC Profile in the rendered image:
     * - no: include no ICC profile
     * - yes: include the ICC Profile specified in the DICOM image, otherwise the sRGB ICC profile
     * - srgb: include sRGB ICC profile and transform original pixels to sRGB color space if an ICC Profile is specified in the DICOM image
     * - adobergb: include Adobe RGB ICC profile and transform original pixels to Adobe RGB color space
     * - rommrgb: include ROMM RGB ICC profile and transform original pixels to ROMM RGB color space
     * By default, include no ICC profile, but transform original pixels to sRGB color space if an ICC Profile is specified in the DICOM image.
     * 暂不处理
     */
    //private ICCProfile.Option iccProfile = ICCProfile.Option.none;
}

